function findPathByKey(data: any[], targetKey: number): number[] | null {
  /**
   * 递归查找指定key的路径
   * @param {any[]} data - 当前遍历的数据数组
   * @param {number} targetKey - 要查找的key值
   * @param {number[]} path - 从根到当前节点的路径（用于递归过程中路径的构建）
   * @returns {number[] | null} - 包含目标key及其所有上级key的数组，如果未找到则返回null
   */
  const find = (data: any[], targetKey: number, path: number[] = []): number[] | null => {
    for (const item of data) {
      // 将当前项的key添加到路径中
      const currentPath = [...path, 
        item.key
      ];
      if (item.key === Number(targetKey)) {
          // console.log(path,currentPath,'结果2');
          // 找到了目标key，返回当前路径
        return path; // 返回currentPath;就会带本身的key
      }
      if (item.children && item.children.length > 0) {
        // 如果有子元素，继续在子元素中查找
        const result = find(item.children, targetKey, currentPath);
        if (result !== null) {
          // 在子树中找到了目标，直接返回结果
          // console.log(result,'结果');
          return result;
        }
      }
    }
    // 如果当前层级没有找到，返回null
    return null;
  };

  // 调用内部递归函数开始查找
  return find(data, targetKey);
}
export default findPathByKey;
// 示例使用
// const keyToFind = 10086;
// const path = findPathByKey(defaultData, keyToFind);
// console.log(`路径为: ${path}`); // 输出找到的路径